Analyse du Data Set OpenFoodFatcs

Ressources utilisées:

d'après le lien ci-dessus, peu de variables (une douzaine environ) entrent en jeu dans le calcul du nutriscore (faire la différence entre le nutriscore (nombre) et le nutrigrade (lettre)

1) Pour les points A:

2) Pour les points C:

et on fait la différence (en général) entre les points A et les points C pour avoir le nutriscore (le chiffre)

au final, on veut pouvoir renseigner, pour un produit donné, son "nutrigrade" (par une lettre de A à E)

1) Exploratory Data Analysis

Checklist de base

Analyse de forme

Analyse de fond

Analyse de la forme des données

Visualisation des valeurs manquantes

Remarque:

Ce tableau nous permet de visualiser toutes les valeurs manquantes parmi notre Dataset. On pourrait s'imaginer faire le tri des colonnes selon le nombre (ratio) de valeurs manquantes mais je vais procéder différemment:

Le premier tableau semble plus "parlant" que le second, je ne garderai que les valeurs correspondant à "contries_fr", d'autant plus qu'il contient plus de valeurs associées à "France"

j'ai donc ainsi éliminé plus des 2/3 du Dataset: c'est un choix que j'ai expliqué plus haut

Choix (élimination) des variables facultatives

Comme expliqué au tout début, le nutriscore se calcule en fonction des points A et C: je ne garderai, comme variables quantitatives, que celles évoquées plus haut.

Quant aux variables qualitatives, je vais regarder de plus près celles qui se terminent en"xx_fr": après étude, seules 2 me semblent pertinentes: "product_name" et "nutrition_grade_fr". J'aurais pu espérer une (plusieurs) variables permettant d'adapter le calcul nutritionnel aux formules du Pr Hercberg, mais rien ne m'a semblé pertinent

on voit plusieurs lignes avec seulement des Nan:

on remarque déjà que la variables "fruits...." est quasi vide: on pourrait remplir les "trous" de zéros, mais au vu du document du Pr Hercberg qui précise que "les noix et fruits à coque ne sont pas pris en compte pour le calcul de la teneur en fruits et légumes", ce qui limite la portée de l'interet de cette colonne et d'éventuellement la combler (par ex de zéros) je préfère me séparer de cette dernière

à présent on élimine les lignes dans lesquelles toutes les valeurs sont Nan

Nous avons donc environ 30000 Nan pour le nutrigrade

je fais une autre copie (numero 3) du df_travail des fois que je sois obligé de revenir à cette étape...

A présent j'élimine les valeurs manquantes de la colonne correspondant au nutrigrade

Puis j'élimine les doublons

on remarque beaucoup d'outliers:

Elimination des outliers

on a bien éliminé (a priori) le dernier décile et les résultats ne semblent pas trop "incohérents"

Remarque: ce résultat peut paraître "peu" mais il m'apparaît même encore... beaucoup, sachant ceci:

http://www.fcd.fr/le-secteur/le-commerce-et-la-distribution/

... où il est précisé qu'une enseigne comme un supermarché ne possède qu'entre 3000 et 5000 références de produits alimentaires

On regarde de plus près à présent les variables quantitatives

histogramme des valeurs continues

on remarque une forte dispersion pour chacune des courbes, et aucune qui ne semble suivre une loi normale

(à part peut-être pour le sodium si on excepte la valeur 0)

observation de la variable qualitative (nutrigrade)

en faisant ce "groupby", on observe bien les corrélations attendues entre:

Analyse bivariée (ANOVA)

... certains graphiques laissent perplexes:

( A et C à ne pas confondre avec le "nutrition_grade" a et c (cf document relatif à l'étude du Pr Hercberg)

il faudrait une étude plus poussée de "l'algorithme" qui calcule le nutriscore (le nombre) pour en savoir plus...

...d'autres par contre ont leur pleine logique: (analyse univariée)

Anlyse Multivariée , ACP

je fais d'abord une copie du df_travail4 des fois que j'en aie besoin par la suite

je remplace les lettres du nutrigrade par des chiffres, pour pouvoir travailler dessus plus tard (K-means)

F1, F2 et F3 captent à eux seuls plus de 70% de la dispersion (variance) totale: on peut se contenter de ces trois axes

1ère conclusion:

? WTF : la p-value indiquant 0, on doit rejeter l'hypothèse nulle et donc: pas de corrélation entre nutrigrade et fat???

Utilisation de l'algorithme K-means pour regrouper les 5 clusters comme autant de nuntrigrades

Commentaire:

Représentations des individus en 3D delon F1, F2 et F3

1) de façon projective

2) avec une carte interactive